home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 13
/
Aminet 13 - August 1996.iso
/
MainActor
/
LoadMPEG
/
DEU
/
LoadMPEG_HAM6.ma
< prev
next >
Wrap
Text File
|
1994-07-01
|
4KB
|
135 lines
/* */
/* LoadMPEG_adpro.ma Alex Kazik 1994 */
/* LoadMPEG_HAM6.ma */
/* LoadMPEG_HAM8.ma Alle drei ARexx-Scripte sind zum laden von */
/* MPEG-Animationen. Das Script xxx_adpro konvertiert */
/* die Bilder mit hilfe von ADPro auf ein beliebiges */
/* Format, dir Dither und Palette Option wird unterstützt. Dir Scripte */
/* xxx_HAM* wandeln die Anim ohne ADPro in das HAM6/HAM8 format um. */
/* */
/* Alle verwendeten Programme zur decodiering der MPEG-Anims sowie der */
/* Konvertierung yuv2ppm und ppm2ilbm sind Public-Domain. */
/* */
OPTIONS RESULTS
address MAINACTOR
printandstoretxt "ALX:MPEG Loader - by Alex Kazik 1994"
RequestFile "MPEG-File auswählen"
IF RC = 10 THEN
call xEXIT 1
mpgfile = RESULT
if ( exists(mpgfile) = 0 ) then
call xexit 6
RequestSaveFile "Ziel-File auswählen"
IF RC = 10 THEN
call xEXIT 1
newname = RESULT
IF exists(newname) then do
printtxt "ALX:Datei existiert schon, löschen?"
RequestSaveFile "Datei löschen -> nochmal wählen!"
IF (RC = 10) | (RESULT ~= newname) then
call xexit 5
ADDRESS COMMAND 'delete' newname
end
printtxt "ALX:Decodiere MPEG..."
ADDRESS COMMAND 'copy' mpgfile newname || '.mpg'
wbtofront
ADDRESS COMMAND 'MainActor:mpeg/mpeg -d' newname '>CON:'
screentofront
printtxt "ALX:Lösche TEMP."
ADDRESS COMMAND 'delete' newname || '.mpg'
pics=0
picname = newname || pics
if exists(picname || ".Y") = 0 then do
call xexit 2
end
if exists(picname || ".U") = 0 then do
call xexit 2
end
if exists(picname || ".V") = 0 then do
call xexit 2
end
pics=1
picname = newname || pics
if exists(picname || ".Y") = 0 then do
call xexit 7
end
if exists(picname || ".U") = 0 then do
call xexit 7
end
if exists(picname || ".V") = 0 then do
call xexit 7
end
xxx = 1
do while xxx = 1
pics = pics + 1
picname = newname || pics
if exists(picname || ".Y") = 0 then
xxx = 0
if exists(picname || ".U") = 0 then
xxx = 0
if exists(picname || ".V") = 0 then
xxx = 0
end
printandstoretxt "ALX:Konnte" pics "Bilder finden."
RequestInteger 352 "Original Bildbreite des MEPGs"
IF RC = 10 THEN
call xEXIT
width=RESULT
RequestInteger 240 "Original Bildhöhe des MPEGs"
IF RC = 10 THEN
call xEXIT 1
height=RESULT
DO i=1 to pics
yuvpic = i - 1
yuvname = newname || yuvpic
actualpic=newname || "." || Right("00000" || i, 5)
printtxt "ALX:Konvertiere Bild" i || "/" || pics || ". (YUV -> PPM)"
ADDRESS COMMAND 'MainActor:mpeg/cyuv2ppm' yuvname 'T:ppm.TEMP' '-iw' width '-ih' height
printtxt "ALX:Konvertiere Bild" i || "/" || pics || ". (PPM -> IFF)"
ADDRESS COMMAND 'MainActor:mpeg/ppmtoilbm >' || actualpic '-ham6 -hamFORCE' 'T:ppm.TEMP'
printtxt "ALX:Konvertiere Bild" i || "/" || pics || ". (lösche TEMP)"
ADDRESS COMMAND 'delete' yuvname || ".?"
END
ADDRESS COMMAND 'delete t:ppm.TEMP'
ADDRESS MAINACTOR
GetSPName
if (rc = 0) then
OpenNewProject
SetSPLoader "PIC" "IFF"
LoadProject newname || ".00001" actualpic
CALL xEXIT 0
xexit:
ARG fehler
if (fehler = 0) then
fehler = "Done."
else if (fehler = 1) then
fehler = "Die Operation wurde Abgebrochen!"
else if (fehler = 2) then
fehler = "Fehler beim Dekodieren."
else if (fehler = 5) then
fehler = "Datei existiert schon."
else if (fehler = 6) then
fehler = "Datei existiert nicht."
else if (fehler = 7) then
fehler = "Anim muß min. 2 Bilder enthalten."
address MAINACTOR
Screentofront
PrintAndStoreTxt "ALX:" || fehler
exit